1. Field of the Invention
The present invention relates to the field of power management. More specifically, this invention relates to a system architecture and method for reducing power consumption of a computer system, in particular desktop personal computers.
2. Description of Art Related to the Invention
Over the last decade, there have been many advances in semiconductor technology which have lead to the development of faster, more powerful semiconductor devices. These advanced semiconductor devices have resulted in the creation of faster and more sophisticated computer systems having greater capabilities and supporting more advanced peripheral devices. These sophisticated computer systems, however, have a tendency of consuming greater amounts of power.
To reduce power consumption, the industry has concentrated its efforts on developing a system which performs power-down techniques on selected hardware devices when the computer system is not being used after a predetermined period of time. Examples of the power-down techniques include, but are not limited to, deactivating one or both of the horizontal and vertical sync signals transmitted into a display monitor, decreasing the rotational frequency of a hard drive and prompting a central processing unit ("CPU") to enter into a System Management Mode ("SMM"). SMM is a well-known operating mode which allows high level systems functions, such as power management or security, to be transparent not only to application software but also to operating systems. As a result of these efforts, a conventional Advanced Power Management ("APM") system was developed as shown in FIG. 1.
In FIG. 1, the conventional APM system 100 consists of one or more layers of software which are collectively used to provide power management for a computer system having hardware devices whose power levels could be easily managed (hereinafter referred to as "power manageable hardware devices"). More specifically, the conventional APM system 100 comprises a hardware-independent software interface ("APM interface") 120 through which a Basic Input/Output System ("APM BIOS") 110 communicates "power management events" to an APM driver 130, namely a driver module operating in association with operating system software such as WINDOWS.TM. 3.1X or Disk Operating System ("DOS"). A "power management event" includes various interrupt requests, external events or a System Management Interrupt ("SMI") upon detecting that the computer system is "Idle".
Upon establishing a connection with the APM BIOS 110, the APM driver 130 regularly polls the APM BIOS 110 to determine whether there are any power management events to be processed. Before powering-down the power manageable hardware devices, software applications 140a-140m and device drivers 150a-150n, preferably having the capability of processing the power management event (i.e., "APM-aware"), are notified by the APM driver 130 and asked as to whether it would be acceptable at an Application level to power-down the power manageable hardware devices 160 at this time. If so, the APM driver 130 transmits an APM message to the APM BIOS 110 to power-down all of the power manageable hardware devices 160. The add-in devices 170a-170n will not be powered down by the APM BIOS 110. Rather, it is the responsibility of their corresponding device drivers 150a-150n to manage the add-in devices 170a-170n for power management events.
Referring to FIG. 2, the conventional APM system may exist at any time in one of five power states; namely an "ON" state 200, an "APM ENABLED" state 210, a "STANDBY" state 220, a "SUSPEND" state 230 and an "OFF" state 240 which are explained in more detail in FIG. 5. The main difference between these power states is the latency needed for the computer system to power-up from its power saving states 220, 230 and 240 to the ON or APM ENABLED state 200 or 210.
As shown by transition path 225, the system enters into the SUSPEND state 230 from the APM ENABLED state 210 if one of two conditions occurs. A first condition is that the computer system undergoes a predetermined period of system inactivity (e.g., five minutes). The second condition is where a computer user intentionally selects the APM system to enter into the SUSPEND state 230. Previously, in the SUSPEND state, the CPU enters into the System Management Mode ("SMM") which can only be exited upon receiving (i) an interrupt request ("IRQ") signal indicating keyboard or mouse activity or (ii) a SMI indicating that the system should exit SMM or enter into SUSPEND state. While the system is in "SMM", the Operating System and software applications can not gain control of the CPU. It is contemplated that the SMI may be manually transmitted by providing a button on the computer system which generates the SMI when depressed.
As a result, the current configuration of the conventional APM system has a number of disadvantages. One disadvantage is that a computer system coupled to a network is unable to use of the APM system in order to reduce power consumption. The reason is that a network server periodically sends network interrupt "IRQ" queries to the computer system to determine if it is still active by receiving a response to the queries. These periodic IRQ queries precludes the CPU from entering into the SMM and thus, precludes the display monitor, hard drive and other power manageable hardware devices from entering into the SUSPEND state. As a result, power management by the conventional APM system can never be achieved as long as the computer system is coupled to the network.
Another problem associated with the current configuration is that the computer system, when in SUSPEND state, does not allow time scheduled events to occur. The reason is that these time scheduled events cannot occur is that when the CPU is in SMM, other external programs or operating systems are prevented from gaining control of the CPU. Once the system is in SMM, only the memory instructions reserved by BIOS are available. This is another mode of CPU which is used only by BIOS.
Therefore, it would be advantageous to configure an APM system to provide APM functionality for a computer system coupled to a network and to support time scheduled events during the SUSPEND state without implementation of additional hardware.